As cloud computing and storage options grow, more and more users are choosing to back up the data on their computing devices to cloud storage servers (e.g., network servers). One of the benefits of backing up the data to the cloud, is that the user can automatically configure a new device or reconfigure an old device based on the data stored in the cloud storage servers. However, the process of restoring the data to the user's computing device (e.g., old device or new device) can use a lot of computing resources (e.g., battery power, network bandwidth, CPU cycles, etc.) and may cause the user device to temporarily operate at a suboptimal level (e.g., generate heat, respond slowly to user input, etc.). Thus, a more intelligent mechanism for restoring data to a user's device is needed that will improve the user's experience when using the user's computing device during the data restoration process.